home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / ISSUE21 / COLORBUT / COLORBUT.ZIP / Demo.Zip / Demo1.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1996-07-30  |  6.2 KB  |  215 lines

  1. unit Demo1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   ColorButton, StdCtrls, ComCtrls, ExtCtrls;
  8.  
  9. type
  10.   TfrmMain = class(TForm)
  11.       pnlDisplay: TPanel;
  12.     btnColorButton: TColorButton;
  13.     gbxProperties: TGroupBox;
  14.     lblAlignment: TLabel;
  15.     cbxAlignment: TComboBox;
  16.     lblBevelSize: TLabel;
  17.     txtBevelSize: TEdit;
  18.     spnBevelSize: TUpDown;
  19.     lblBevelStyle: TLabel;
  20.     cbxBevelStyle: TComboBox;
  21.     lblCaption: TLabel;
  22.     txtCaption: TEdit;
  23.     lblColor: TLabel;
  24.     txtColor: TEdit;
  25.     btnColor: TButton;
  26.     lblFont: TLabel;
  27.     txtFont: TEdit;
  28.     btnFont: TButton;
  29.     lblPicture: TLabel;
  30.     txtPicture: TEdit;
  31.     btnPicture: TButton;
  32.     lblSpacing: TLabel;
  33.     txtSpacing: TEdit;
  34.     spnSpacing: TUpDown;
  35.     lblWidth: TLabel;
  36.     txtWidth: TEdit;
  37.     spnWidth: TUpDown;
  38.     lblHeight: TLabel;
  39.     txtHeight: TEdit;
  40.     spnHeight: TUpDown;
  41.     chkEnabled: TCheckBox;
  42.     chkAutoSize: TCheckBox;
  43.     chkCenter: TCheckBox;
  44.     chkStretch: TCheckBox;
  45.     chkShowFocus: TCheckBox;
  46.     dlgOpen: TOpenDialog;
  47.     dlgFont: TFontDialog;
  48.     dlgColor: TColorDialog;
  49.     chkMultiLine: TCheckBox;
  50.     lblFontStyle: TLabel;
  51.     cbxFontStyle: TComboBox;
  52.     chkSpeedKey: TCheckBox;
  53.     chkMultiState: TCheckBox;
  54.     procedure OnInitialize(Sender: TObject);
  55.     procedure OnChangeAlignment(Sender: TObject);
  56.     procedure OnChangeCaption(Sender: TObject);
  57.     procedure OnChangeBevelSize(Sender: TObject);
  58.     procedure OnChangeBevelStyle(Sender: TObject);
  59.     procedure OnBrowseColor(Sender: TObject);
  60.     procedure OnBrowseFont(Sender: TObject);
  61.     procedure OnBrowsePicture(Sender: TObject);
  62.     procedure OnChangeSpacing(Sender: TObject);
  63.     procedure OnChangeWidth(Sender: TObject);
  64.     procedure OnChangeHeight(Sender: TObject);
  65.     procedure OnChangeEnabled(Sender: TObject);
  66.     procedure OnChangeStyle(Sender: TObject);
  67.     procedure OnMoveToCenter(Sender: TObject);
  68.     procedure OnChangeFontStyle(Sender: TObject);
  69.   end;
  70.  
  71. var
  72.   frmMain: TfrmMain;
  73.  
  74. implementation
  75.  
  76. {$R *.DFM}
  77.  
  78. procedure TfrmMain.OnInitialize(Sender: TObject);
  79. begin
  80.     // Initialize the app
  81.   cbxAlignment.ItemIndex := 4;
  82.   cbxBevelStyle.ItemIndex := 2;
  83.   cbxFontStyle.ItemIndex := 0;
  84.  
  85.   OnMoveToCenter(Self);
  86. end;
  87.  
  88. procedure TfrmMain.OnChangeAlignment(Sender: TObject);
  89. begin
  90.     case cbxAlignment.ItemIndex of
  91.       0: btnColorButton.Alignment := alTopLeft;
  92.     1: btnColorButton.Alignment := alTopCenter;
  93.     2: btnColorButton.Alignment := alTopRight;
  94.     3: btnColorButton.Alignment := alMiddleLeft;
  95.     4: btnColorButton.Alignment := alMiddleCenter;
  96.     5: btnColorButton.Alignment := alMiddleRight;
  97.     6: btnColorButton.Alignment := alBottomLeft;
  98.     7: btnColorButton.Alignment := alBottomCenter;
  99.     8: btnColorButton.Alignment := alBottomRight;
  100.   end;
  101. end;
  102.  
  103. procedure TfrmMain.OnChangeCaption(Sender: TObject);
  104. begin
  105.     btnColorButton.Caption := txtCaption.text;
  106. end;
  107.  
  108. procedure TfrmMain.OnChangeBevelSize(Sender: TObject);
  109. begin
  110.     btnColorButton.BevelSize := spnBevelSize.Position;
  111.  
  112.   OnMoveToCenter(Self);
  113. end;
  114.  
  115. procedure TfrmMain.OnChangeBevelStyle(Sender: TObject);
  116. begin
  117.     case cbxBevelStyle.ItemIndex of
  118.       0: btnColorButton.BevelStyle := bbNone;
  119.     1: btnColorButton.BevelStyle := bbLowered;
  120.     2: btnColorButton.BevelStyle := bbRaised;
  121.   end;
  122. end;
  123.  
  124. procedure TfrmMain.OnBrowseColor(Sender: TObject);
  125. begin
  126.     dlgColor.Color := btnColorButton.Color;
  127.     if dlgColor.Execute then
  128.   begin
  129.       btnColorButton.Color := dlgColor.Color;
  130.     txtColor.Text := ColorToString(dlgColor.Color);
  131.   end;
  132. end;
  133.  
  134. procedure TfrmMain.OnBrowseFont(Sender: TObject);
  135. begin
  136.     dlgFont.Font := btnColorButton.Font;
  137.   if dlgFont.Execute then
  138.   begin
  139.       btnColorButton.Font := dlgFont.Font;
  140.     txtFont.Text := dlgFont.Font.Name;
  141.   end;
  142. end;
  143.  
  144. procedure TfrmMain.OnBrowsePicture(Sender: TObject);
  145. begin
  146.     if dlgOpen.Execute then
  147.   begin
  148.       btnColorButton.Picture.LoadFromFile(dlgOpen.FileName); btnColorButton.Repaint;
  149.     if LowerCase(ExtractFileExt(dlgOpen.Filename)) = '.bmp' then txtPicture.Text := '(Bitmap)';
  150.     if LowerCase(ExtractFileExt(dlgOpen.Filename)) = '.ico' then txtPicture.Text := '(Icon)';
  151.     if LowerCase(ExtractFileExt(dlgOpen.Filename)) = '.wmf' then txtPicture.Text := '(Metafile)';
  152.     if LowerCase(ExtractFileExt(dlgOpen.Filename)) = '.emf' then txtPicture.Text := '(Enhanced Metafile)';
  153.  
  154.       OnMoveToCenter(Self);
  155.   end;
  156. end;
  157.  
  158. procedure TfrmMain.OnChangeSpacing(Sender: TObject);
  159. begin
  160.     btnColorButton.Spacing := spnSpacing.Position;
  161.  
  162.   OnMoveToCenter(Self);
  163. end;
  164.  
  165. procedure TfrmMain.OnChangeWidth(Sender: TObject);
  166. begin
  167.     btnColorButton.Width := spnWidth.Position;
  168.   OnMoveToCenter(Self);
  169. end;
  170.  
  171. procedure TfrmMain.OnChangeHeight(Sender: TObject);
  172. begin
  173.     btnColorButton.Height := spnHeight.Position;
  174.   OnMoveToCenter(Self);
  175. end;
  176.  
  177. procedure TfrmMain.OnChangeEnabled(Sender: TObject);
  178. begin
  179.     btnColorButton.Enabled := chkEnabled.Checked;
  180. end;
  181.  
  182. procedure TfrmMain.OnChangeStyle(Sender: TObject);
  183. begin
  184.     btnColorButton.Style := [];
  185.   if chkAutoSize.Checked then btnColorButton.Style := btnColorButton.Style + [bsAutoSize];
  186.   if chkCenter.Checked then btnColorButton.Style := btnColorButton.Style + [bsCenter];
  187.   if chkMultiLine.Checked then btnColorButton.Style := btnColorButton.Style + [bsMultiLine];
  188.   if chkMultiState.Checked then btnColorButton.Style := btnColorButton.Style + [bsMultiState];
  189.   if chkStretch.Checked then btnColorButton.Style := btnColorButton.Style + [bsStretch];
  190.   if chkShowFocus.Checked then btnColorButton.Style := btnColorButton.Style + [bsShowFocus];
  191.   if chkSpeedKey.Checked then btnColorButton.Style := btnColorButton.Style + [bsSpeedKey];
  192.  
  193.   OnMoveToCenter(Self);
  194. end;
  195.  
  196. procedure TfrmMain.OnMoveToCenter(Sender: TObject);
  197. begin
  198.     btnColorButton.Invalidate;
  199.     Application.ProcessMessages;
  200.  
  201.     btnColorButton.Left := (pnlDisplay.Width - btnColorButton.Width) div 2;
  202.   btnColorButton.Top := (pnlDisplay.Height - btnColorButton.Height) div 2;
  203. end;
  204.  
  205. procedure TfrmMain.OnChangeFontStyle(Sender: TObject);
  206. begin
  207.   case cbxFontStyle.ItemIndex of
  208.     0: btnColorButton.FontStyle := fnNormal;
  209.     1: btnColorButton.FontStyle := fnRaised;
  210.     2: btnColorButton.FontStyle := fnLowered;
  211.   end;
  212. end;
  213.  
  214. end.
  215.